package department.controller;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import department.domain.Department;
import department.service.DepartmentService;

public class ModifyDepartmentServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}
	/*
	 * 사용자로부터 입력받은 각종 부서정보를 겟파라미터로 받고
	 * 그것을 부서 객체로 모아서 만들고
	 * 서비스 메서드를 호출해서
	 * 서비스객체에서 부서정보를 수정하는 메서드를 호출해서 그 안에 사용자로부터 받은 부서 정보 객체를 넘긴다. 
	 * 그리고 그것을 리 다이렉트 방식으로  넘기는데 이때 클라이언트가 입력한 부서ID를 통해 그 아이디 값에 대한 부서정보를 화면에 출력해주는 
	 * 서블릿으로 객체 수행을 넘기는 것  
	 */

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String departmentId = request.getParameter("departmentId");
		String departmentName = request.getParameter("departmentName");
		String location = request.getParameter("location");
		Department department = new Department(departmentId, departmentName, location);
		DepartmentService service = DepartmentService.getInstance();
		try{
			service.modifyDepartment(department);
			response.sendRedirect("/MyDepartmentManager/getDepartmentServlet?departmentId="+departmentId);
		}catch(SQLException e){
			e.printStackTrace();
			request.setAttribute("error_message", e.getMessage());
			RequestDispatcher rdp = request.getRequestDispatcher("/error.jsp");
			rdp.forward(request, response);
		}
	}

}
